package sany.iec.service.olp01;

import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import sany.iec.entity.IECData;

import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author : 托马斯
 * @Date : 2025/7/2 16:59
 * @Description :
 */
@Service
@Getter
public class OLP01DataService {

    @Value("${install.sum}")
    private Double installSum;

    @Value("${iec.olp01.COA}")
    private Integer COA;

    private List<IECData> IEC_DATA = new ArrayList<>();

    @PostConstruct
    public void init() {
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16385).originValue(installSum - 2).chazhi(0.2).key("OutLinePower").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16386).originValue(installSum * 0.328 - 1).chazhi(0.2).key("OutLineRepower").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16387).originValue(0.9).chazhi(0.02).key("OutLinePowerFactor").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16388).originValue(installSum / 115).chazhi(0.05).key("OutLineIa").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16389).originValue(installSum / 115).chazhi(0.05).key("OutLineIb").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16390).originValue(installSum / 115).chazhi(0.05).key("OutLineIc").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16391).originValue(115).chazhi(0.5).key("OutLineUab").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16392).originValue(115).chazhi(0.5).key("OutLineUbc").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16393).originValue(115).chazhi(0.5).key("OutLineUca").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16394).originValue(7).chazhi(0.0).key("MainTransformGear").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16395).originValue(installSum - 2).chazhi(0.2).key("OutLinePower2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16396).originValue(installSum * 0.328 - 1).chazhi(0.2).key("OutLineRepower2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16397).originValue(0.9).chazhi(0.02).key("OutLinePowerFactor2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16398).originValue((installSum - 2) / 115).chazhi(0.05).key("OutLineIa2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16399).originValue((installSum - 2) / 115).chazhi(0.05).key("OutLineIb2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16400).originValue((installSum - 2) / 115).chazhi(0.05).key("OutLineIc2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16401).originValue(115).chazhi(0.5).key("OutLineUab2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16402).originValue(115).chazhi(0.5).key("OutLineUbc2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16403).originValue(115).chazhi(0.5).key("OutLineUca2").build());
        IEC_DATA.add(IECData.builder().type("yc").iecType("M_ME_NC").COA(COA).IOA(16403).originValue(installSum - 2).chazhi(0.5).key("CollectionPSum").build());
    }

    public Boolean updateOrigin(String key, Float value) {
        for (int i = 0; i < IEC_DATA.size(); i++) {
            if (IEC_DATA.get(i).getKey().equals(key)) {
                IEC_DATA.get(i).setOriginValue(value);
                return true;
            }
        }
        return false;
    }

    public Object getKey(String key) {
        for (int i = 0; i < IEC_DATA.size(); i++) {
            if (IEC_DATA.get(i).getKey().equals(key)) {
                return IEC_DATA.get(i).getValue();
            }
        }
        return null;
    }

}
